package alocador.ui;

/**
 * Enumera as opcoes do menu principal
 */
enum OpcaoMenu {

	ADICIONAR_SALA(1), ADICIONAR_EVENTO(2), ALOCAR_EVENTO(3), LOCALIZAR_EVENTO(
			4), DESALOCAR_EVENTO(5), CANCELAR_EVENTO(6), REMOVER_SALA(7), SAIR_DO_SISTEMA(
			8), OPCAO_INVALIDA(-1), ZERAR_SISTEMA(9);

	private int valor;

	OpcaoMenu(int opcaoNoMenu) {
		this.valor = opcaoNoMenu;
	}

	/**
	 * Retorna uma opcao do menu principal. Uma opcao se caracteriza por
	 * <i>invalida</i> caso o valor informado seja <i>negativo</i> ou nao
	 * estiver listada.
	 * 
	 * @param escolha
	 *            O valor que representa a opcao desejada
	 * @return A opcao desejada
	 */
	public static OpcaoMenu escolher(int escolha) {
		for (OpcaoMenu op : OpcaoMenu.values()) {
			if (escolha == op.getValor())
				return op;
		}
		return OPCAO_INVALIDA;
	}

	private int getValor() {
		return valor;
	}
}
